gmrangle 2.2.1
gmrangle.h File Reference

This file contains API for GMR Angle Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  gmrangle_t
 Click ctx object definition. More...
struct  gmrangle_cfg_t
 Click configuration structure definition. More...

Macros

#define GMRANGLE_MAP_MIKROBUS(cfg, mikrobus)
#define GMRANGLE_OK   0
#define GMRANGLE_ERROR   -1
#define GMRANGLE_REG_STAT   0x00
#define GMRANGLE_REG_ACSTAT   0x01
#define GMRANGLE_REG_AVAL   0x02
#define GMRANGLE_REG_ASPD   0x03
#define GMRANGLE_REG_AREV   0x04
#define GMRANGLE_REG_FSYNC   0x05
#define GMRANGLE_REG_MOD_1   0x06
#define GMRANGLE_REG_SIL   0x07
#define GMRANGLE_REG_MOD_2   0x08
#define GMRANGLE_REG_MOD_3   0x09
#define GMRANGLE_REG_OFFX   0x0A
#define GMRANGLE_REG_OFFY   0x0B
#define GMRANGLE_REG_SYNCH   0x0C
#define GMRANGLE_REG_IFAB   0x0D
#define GMRANGLE_REG_MOD_4   0x0E
#define GMRANGLE_REG_TCO_Y   0x0F
#define GMRANGLE_REG_ADC_X   0x10
#define GMRANGLE_REG_ADC_Y   0x11
#define GMRANGLE_READ_SENSOR   0x80
#define GMRANGLE_GET_BIT_5_4   0x30
#define GMRANGLE_GET_BIT_3_0   0x0F
#define GMRANGLE_SYSTEM_ERROR_MASK   0x4000
#define GMRANGLE_INTERFACE_ERROR_MASK   0x2000
#define GMRANGLE_INV_ANGLE_ERROR_MASK   0x1000
#define GMRANGLE_CRC_POLYNOMIAL   0x1D00
#define GMRANGLE_CRC_SEED   0xFF00
#define GMRANGLE_CRC_NUM_REGISTERS   0x0008
#define GMRANGLE_MAX_REGISTER_MEM   0x0030
#define GMRANGLE_DELETE_BIT_15   0x7FFF
#define GMRANGLE_CHANGE_UINT_TO_INT_16   0xFFFF
#define GMRANGLE_CHANGE_UINT_TO_INT_15   0x8000
#define GMRANGLE_MAX_BIT_14   0x3FFF
#define GMRANGLE_CHECK_BIT_14   0x4000
#define GMRANGLE_GET_BIT_14_4   0x7FF0
#define GMRANGLE_DELETE_7BITS   0x01FF
#define GMRANGLE_CHANGE_UNIT_TO_INT_9   0x0200
#define GMRANGLE_CHECK_BIT_9   0x0100
#define GMRANGLE_CHECK_BIT_15   0x8000
#define GMRANGLE_POW_2_15   32768.0f
#define GMRANGLE_POW_2_7   128.0f
#define GMRANGLE_ANGLE_360_VAL   360.0f
#define GMRANGLE_TEMP_OFFSET   152.0f
#define GMRANGLE_TEMP_DIV   2.776f
#define GMRANGLE_DATA_RESOLUTION   0x7FFF
#define GMRANGLE_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
#define GMRANGLE_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE

Functions

void gmrangle_cfg_setup (gmrangle_cfg_t *cfg)
 Config Object Initialization function.
err_t gmrangle_init (gmrangle_t *ctx, gmrangle_cfg_t *cfg)
 Initialization function.
uint16_t gmrangle_read_data (gmrangle_t *ctx, uint8_t reg)
 Generic read 16-bit data function.
void gmrangle_write_data (gmrangle_t *ctx, uint8_t reg, uint16_t tx_data)
 Generic write 16-bit data function.
uint16_t gmrangle_get_status (gmrangle_t *ctx)
 Get the status data function.
void gmrangle_set_act_status (gmrangle_t *ctx, uint16_t a_data)
 Set activation status register function.
int16_t gmrangle_get_angle_speed_value (gmrangle_t *ctx)
 Get the angle speed value function.
void gmrangle_get_angle_speed (gmrangle_t *ctx, float *final_angle_speed, int16_t *angle_speed_val)
 Get the angle speed function.
float gmrangle_get_angle_range (gmrangle_t *ctx)
 Get the angle range function.
int16_t gmrangle_get_num_revolutions (gmrangle_t *ctx)
 Get the number of revolutions function.
uint16_t gmrangle_get_angle_value (gmrangle_t *ctx)
 Get the angle value function.
float gmrangle_calculate_angle (gmrangle_t *ctx)
 Calculate angle function.

Detailed Description

This file contains API for GMR Angle Click driver.